/*
 * MIT License
 *
 * Copyright (c) 2023 北京凯特伟业科技有限公司
 *
 * Permission is hereby granted, free of charge, to any person obtaining a copy
 * of this software and associated documentation files (the "Software"), to deal
 * in the Software without restriction, including without limitation the rights
 * to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
 * copies of the Software, and to permit persons to whom the Software is
 * furnished to do so, subject to the following conditions:
 *
 * The above copyright notice and this permission notice shall be included in all
 * copies or substantial portions of the Software.
 *
 * THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
 * IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
 * FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
 * AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
 * LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
 * OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
 * SOFTWARE.
 */
package com.je.common.base.entity.func;

import java.io.Serializable;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;

public class FuncInfo implements Serializable {

    private static final long serialVersionUID = -179354760984120059L;
    /**
     * 功能ID
     */
    private String funcId;
    /**
     * 功能名称
     */
    private String funcName;
    /**
     * 功能编码
     */
    private String funcCode;
    /**
     * 功能类型
     */
    private String funcType;
    /**
     * 表编码
     */
    private String tableCode;
    /**
     * 主键编码
     */
    private String pkCode;
    /**
     * 视图操作表名
     */
    private String curdTableCode;
    /**
     * sql类型功能字段
     */
    private String sql;
    /**
     * 数据源字段
     */
    private String dbName;
    /**
     * 过滤条件
     */
    private String whereSql;
    /**
     * 排序条件
     */
    private String orderSql;
    /**
     * 查询列
     */
    private String queryColumns;
    /**
     * 查询策略
     */
    private List<FuncQueryStrategy> strategies;
    /**
     * 字段默认值
     */
    private Map<String,String> fieldDefaultValues=new HashMap<>();
    /**
     * 图标样式
     */
    private String iconCls;
    /**
     * 批注展示信息
     */
    private String postilShowConfig;
    /**
     * 标题展示信息
     */
    private String postilTitleConfig;
    /**
     * 标记标识
     */
    private Boolean mark;
    /**
     * 未读标识
     */
    private Boolean funcEdit;
    /**
     * 批注标识
     */
    private Boolean postil;
    /**
     * 扩展配置
     */
    private String otherConfig;
    /**
     * 最后静态化版本
     */
    private String lastVersion;
    /**
     * 子功能
     */
    private List<FuncRelation> children=new ArrayList<>();

    /**
     * 树形配置
     */
    private String treeFuncConfig;

    /**
     *附件bucket
     */
    private String funcBucket;

    public String getTreeFuncConfig() {
        return treeFuncConfig;
    }

    public void setTreeFuncConfig(String treeFuncConfig) {
        this.treeFuncConfig = treeFuncConfig;
    }

    public String getFuncBucket() {
        return funcBucket;
    }

    public void setFuncBucket(String funcBucket) {
        this.funcBucket = funcBucket;
    }

    public String getFuncId() {
        return funcId;
    }

    public void setFuncId(String funcId) {
        this.funcId = funcId;
    }

    public String getFuncName() {
        return funcName;
    }

    public void setFuncName(String funcName) {
        this.funcName = funcName;
    }

    public String getFuncCode() {
        return funcCode;
    }

    public void setFuncCode(String funcCode) {
        this.funcCode = funcCode;
    }

    public String getTableCode() {
        return tableCode;
    }

    public void setTableCode(String tableCode) {
        this.tableCode = tableCode;
    }

    public String getPkCode() {
        return pkCode;
    }

    public void setPkCode(String pkCode) {
        this.pkCode = pkCode;
    }

    public String getCurdTableCode() {
        return curdTableCode;
    }

    public void setCurdTableCode(String curdTableCode) {
        this.curdTableCode = curdTableCode;
    }

    public String getQueryColumns() {
        return queryColumns;
    }

    public void setQueryColumns(String queryColumns) {
        this.queryColumns = queryColumns;
    }

    public Map<String, String> getFieldDefaultValues() {
        return fieldDefaultValues;
    }

    public void setFieldDefaultValues(Map<String, String> fieldDefaultValues) {
        this.fieldDefaultValues = fieldDefaultValues;
    }

    public String getIconCls() {
        return iconCls;
    }

    public void setIconCls(String iconCls) {
        this.iconCls = iconCls;
    }

    public String getPostilShowConfig() {
        return postilShowConfig;
    }

    public void setPostilShowConfig(String postilShowConfig) {
        this.postilShowConfig = postilShowConfig;
    }

    public String getPostilTitleConfig() {
        return postilTitleConfig;
    }

    public void setPostilTitleConfig(String postilTitleConfig) {
        this.postilTitleConfig = postilTitleConfig;
    }

    public List<FuncRelation> getChildren() {
        return children;
    }

    public void setChildren(List<FuncRelation> children) {
        this.children = children;
    }

    public Boolean getMark() {
        return mark;
    }

    public void setMark(Boolean mark) {
        this.mark = mark;
    }

    public Boolean getFuncEdit() {
        return funcEdit;
    }

    public void setFuncEdit(Boolean funcEdit) {
        this.funcEdit = funcEdit;
    }

    public Boolean getPostil() {
        return postil;
    }

    public void setPostil(Boolean postil) {
        this.postil = postil;
    }

    public String getFuncType() {
        return funcType;
    }

    public void setFuncType(String funcType) {
        this.funcType = funcType;
    }

    public String getSql() {
        return sql;
    }

    public void setSql(String sql) {
        this.sql = sql;
    }

    public String getWhereSql() {
        return whereSql;
    }

    public void setWhereSql(String whereSql) {
        this.whereSql = whereSql;
    }

    public String getOtherConfig() {
        return otherConfig;
    }

    public void setOtherConfig(String otherConfig) {
        this.otherConfig = otherConfig;
    }

    public String getLastVersion() {
        return lastVersion;
    }

    public void setLastVersion(String lastVersion) {
        this.lastVersion = lastVersion;
    }

    public List<FuncQueryStrategy> getStrategies() {
        return strategies;
    }

    public void setStrategies(List<FuncQueryStrategy> strategies) {
        this.strategies = strategies;
    }

    public String getOrderSql() {
        return orderSql;
    }

    public void setOrderSql(String orderSql) {
        this.orderSql = orderSql;
    }

    public String getDbName() {
        return dbName;
    }

    public void setDbName(String dbName) {
        this.dbName = dbName;
    }
}
